1. Field of the Invention
This invention relates generally to configuration systems, and, more particularly, to configuring products with dynamic components.
2. Description of the Background Art
Product configurators are well known in the art. Product configurators are used by companies that sell configurable products and services. The configurator executes a configuration application that guides a user (e.g., a customer) through the configuration process. During a typical configuration process, a user selects components of a product/service, and the configurator determines whether the user's selection(s) violate any constraints associated with the configured product/service. If a constraint is violated, the user must make new selection(s).
Components of a configurable product can have static and/or dynamic attributes. Static attributes are pre-defined and do not change during the configuration process. Dynamic attributes are attributes that are defined by a user or the configurator during the configuration process.
In known systems, configuring products with components having dynamic attributes is very cumbersome and expensive. In some cases, this is because the configurators do not provide support for dynamic component (i.e., they do not allow the component definition to be changed during configuration), and, instead use a tracking parameter or other data objects to track dynamic aspects of the configuration outside the component definition. In other cases, the systems have component-like objects that support dynamic attributes, but such objects do not maintain a configuration state or otherwise have an association with a configuration state. Consequently, every time a dynamic attribute changes, an instance of the entire object needs to be recreated, and the configurator needs to repeat all previous computations in the configuration session that involved such object. Therefore, there is a need for a more efficient and cost-effective method for configuring products with dynamic components.